package com.logistics.service;

import com.logistics.common.Result;
import com.logistics.entity.LogisticsOrder;
import java.util.List;
import java.util.Map;

public interface LogisticsOrderService {
    
    /**
     * 创建物流订单
     */
    Result<LogisticsOrder> createOrder(LogisticsOrder order);
    
    /**
     * 获取物流订单
     */
    Result<LogisticsOrder> getOrder(Long id);
    
    /**
     * 获取物流订单（根据订单号）
     */
    Result<LogisticsOrder> getOrderByOrderNo(String orderNo);
    
    /**
     * 获取物流订单列表
     */
    Result<List<Map<String, Object>>> listOrders();
    
    /**
     * 更新物流订单
     */
    Result<LogisticsOrder> updateOrder(LogisticsOrder order);
    
    /**
     * 删除物流订单
     */
    Result<Void> deleteOrder(Long id);
    
    /**
     * 更新物流订单状态
     */
    Result<LogisticsOrder> updateOrderStatus(Long id, String status);

    /**
     * 根据订单号获取订单
     */
    Result<LogisticsOrder> getByOrderNo(String orderNo);

    /**
     * 搜索订单
     */
    Result<List<Map<String, Object>>> searchOrders(String orderNo, Integer status, String startDate, String endDate);
}